c语言中i<=(N2-1)?(t=41*i>>4):(t=41*(i-N2)>>4);是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:15:38

用的是3元运算
? :
(表达式1)?(表达式2):(表达式3)
如果 表达式1 为真值就 返回表达式2的值
表达式1 为假的话就返回表达式3的值
其实上面就相当于

if(i<=(N2-1))
(t=41*i>>4)
else
(t=41*(i-N2)>>4);

>> 是移位

如果i<=(N2-1)
则执行t=41*i>>4
反之
则执行t=41*(i-N2)>>4

在C语言中,是一个判断表达式,问号前面的那个式子如果是真,就取中间表达式的结果,如果是假,就取最后一个表达式的结果.

如果i<=(N2-1)
执行(t=41*i>>4)
否则,执行后面的(t=41*(i-N2)>>4)